#pragma once
#include "define.h"

typedef int ElemType;

typedef struct {
    ElemType * elem;            //存储空间基址
    int length;                 //当前长度
    int listsize;               //当前分配的存储容量，总容量 = listsize * sizeof (ElemType)，如果需要再次分配，则 新容量 = (L.listsize + LISTINCREMENT) * sizeof (ElemType)
} Sqlist,List;

typedef struct LNode{
    ElemType data;
    struct LNode * next;
 } LNode, * LinkList;


#define MAXSIZE 20              //静态链表的最大长度
//静态链表的存储结构
typedef struct{
    ElemType data;
    int cur;
}component, SLinkList[MAXSIZE]; //SLinkList 的类型是 匿名 struct [10]，即长度为 10 的数组类型


//线性表的双向链表存储结构
typedef struct DuLNode{
    ElemType data;
    struct DuLNode * prior;     //prior : [ˈpraɪə(r)] 先前的
    struct DuLNode * next;
}DuLNode, * DuLinkList;